package com.atguigu.gulimail.search.vo;

import com.atguigu.common.to.es.SkuEsModel;
import lombok.Data;

import java.util.List;

/**
 * 检索返回结果模型
 * 通过检索条件查询出来的结果响应对象
 * 返回给页面的所有信息
 * @author Guo 2022/11/2 16:42:34
 */
@Data
public class SearchResult {

    /**
     * 查询到的所有商品信息
     */
    private List<SkuEsModel> products;

    /**
     * 分页信息
     */
    private Integer pageNum; // 当前页码
    private Long total; // 总记录数
    private Integer totalPages; // 总页码

    private List<Integer> pageNavs; // 记录总页码的数组信息，方便前端用来遍历得到页码

    /**
     * 当前查询到的结果，所有涉及到的品牌    -- 固定属性
     */
    private List<BrandVo> brands;

    /**
     * 当前查询到的结果，所有涉及到的分类    -- 固定属性
     */
    private List<CatalogVo> catalogs;

    /**
     * 当前查询到的结果，所有涉及的属性
     *  **并且在检索栏上能够显示的属性，必须为下面展示的商品所具有的属性，
     *     不然可能会出现检索属性，查不到商品的情况。
     */
    private List<AttrVo> attrs;


    @Data
    public static class BrandVo {
        private Long brandId;
        private String brandName;
        private String brandImg;
    }

    @Data
    public static class CatalogVo {
        private Long catalogId;
        private String catalogName;
    }

    @Data
    public static class AttrVo {
        private Long attrId;
        private String attrName;
        private List<String> attrValue;
    }


}
